Add ParticleDump and FieldDump (openPMD plugin) to PICMI #5505
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds rudimentary support for output via the openPMD plugin.
Available capabilities:
ParticleDump(species)with native speciesFieldDump(fieldname)with native fieldsOpenPMDConfigexcept forrange(andbackend_configuntested)Missing capabilities:
DerivedFieldDumpfrom particlesRangeSpecfor modelling rangesFilterspecies_all,fields_all.Some explanations:
.tomlfile for each instance of the openPMD plugin that PIConGPU is supposed to use. This is straightforward to achieve but is not quite aligned with the pypicongpu approach to rendering:pypicongpu.jsonby being directly located inside of the.tomlfiles. This means a two-step approach would be necessary to get the full information from thepypicongpu.json: 1. Parsepypicongpu.jsonand 2. extract the corresponding.tomlfile's name and parse that as well. If parsingpypicongpu.jsonis relevant to your workflow, there are two options:pypicongpu.jsonfile that's not necessary for rendering the templates but just meant to inform the user after the fact. I typically don't fancy this kind of solution.picmi/simulation.pywhich gathers all diagnostics getting dumped into the same file(s) into one instance of the openPMD plugin.CAUTION: The handling of
ranges is still inconsistent (because it's not yet implemented). Should you manage to somehow pass arangethrough the different layers (not sure if anything's hindering you), anOpenPMDConfiginstance that's identical up torangewould be treated as different. This implies that there would be twoOpenPMDWriterinstances in PIConGPU writing to the same file. I'll take care of this oncerangeis properly fleshed out.